package com.itany.corejava.code07_常用类.object;

/**
 * @author MissChen
 * @date 2024年02月27日 9:42
 */
public class TestEquals {
    public static void main(String[] args) {
        System.out.println("aa".equals("bb"));

        System.out.println("-------------默认的equals方法------------");
        Person person=new Person("admin",18);
        Person person2=new Person("admin",18);
        System.out.println(person==person2);//false
        System.out.println(person.equals(person2));//没有重写equals方法前false

        System.out.println("-----------------String中的equals方法------------------");
        String s1=new String("admin");
        String s2=new String("admin");
        //通过new的方式指定字符串，表示在堆中开辟了空间
        // 此时堆中开辟了两块空间用于存储s1与s2
        // 因此，栈中的地址值是不同的，通过==比较是栈中的地址的值，所以为false
        System.out.println(s1==s2);//false

        // 字符串重写了equals方法，此时比较的是堆中具体的字符串值，忽略了地址
        System.out.println(s1.equals(s2));//true


        System.out.println("----------开发者手动重写equals方法-----------");
        System.out.println(person.equals(person2));//true


    }
}
